package com.billManage.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.billManage.common.annotation.Excel;
import com.billManage.common.core.domain.BaseEntity;

/**
 * 票据管理对象 sys_bill
 * 
 * @author ruoyi
 * @date 2024-05-16
 */
public class SysBill extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 票据id */
    private Long billId;

    /** 发票编号 */
    private String invoiceNum;

    /** 总计金额 */
    @Excel(name = "总计金额")
    private String totalAmount;

    /** 原因 */
    @Excel(name = "原因")
    private String reason;

    /** 票据地址 */
    @Excel(name = "票据地址")
    private String billUrl;

    /** 开票日期 */
    @Excel(name = "开票日期")
    private String invoiceDate;

    /** 购买方 */
    @Excel(name = "购买方")
    private String purchaserName;

    /** 销售方 */
    @Excel(name = "销售方")
    private String sellerName;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 规格 */
    @Excel(name = "规格")
    private String type;

    /** 数量 */
    @Excel(name = "数量")
    private String num;

    /** 单价 */
    @Excel(name = "单价")
    private String price;

    /** 单行金额 */
    @Excel(name = "单行金额")
    private String amount;

    /** 税率 */
    @Excel(name = "税率")
    private String taxRate;

    /** 税额 */
    @Excel(name = "税额")
    private String tax;

    /** 审核人 */
    @Excel(name = "审核人")
    private String reviewBy;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewTime;

    /** 状态（0 待审核 1已通过, 2未通过） */
    @Excel(name = "状态", readConverterExp = "0=,待=审核,1=已通过,,2=未通过")
    private String status;

    /** 是否删除 0正常 1删除 */
    private String delFlg;

    public void setBillId(Long billId) 
    {
        this.billId = billId;
    }

    public Long getBillId() 
    {
        return billId;
    }
    public void setInvoiceNum(String invoiceNum) 
    {
        this.invoiceNum = invoiceNum;
    }

    public String getInvoiceNum() 
    {
        return invoiceNum;
    }
    public void setTotalAmount(String totalAmount) 
    {
        this.totalAmount = totalAmount;
    }

    public String getTotalAmount() 
    {
        return totalAmount;
    }
    public void setReason(String reason) 
    {
        this.reason = reason;
    }

    public String getReason() 
    {
        return reason;
    }
    public void setBillUrl(String billUrl) 
    {
        this.billUrl = billUrl;
    }

    public String getBillUrl() 
    {
        return billUrl;
    }
    public void setInvoiceDate(String invoiceDate) 
    {
        this.invoiceDate = invoiceDate;
    }

    public String getInvoiceDate() 
    {
        return invoiceDate;
    }
    public void setPurchaserName(String purchaserName) 
    {
        this.purchaserName = purchaserName;
    }

    public String getPurchaserName() 
    {
        return purchaserName;
    }
    public void setSellerName(String sellerName) 
    {
        this.sellerName = sellerName;
    }

    public String getSellerName() 
    {
        return sellerName;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }
    public void setNum(String num) 
    {
        this.num = num;
    }

    public String getNum() 
    {
        return num;
    }
    public void setPrice(String price) 
    {
        this.price = price;
    }

    public String getPrice() 
    {
        return price;
    }
    public void setAmount(String amount) 
    {
        this.amount = amount;
    }

    public String getAmount() 
    {
        return amount;
    }
    public void setTaxRate(String taxRate) 
    {
        this.taxRate = taxRate;
    }

    public String getTaxRate() 
    {
        return taxRate;
    }
    public void setTax(String tax) 
    {
        this.tax = tax;
    }

    public String getTax() 
    {
        return tax;
    }
    public void setReviewBy(String reviewBy) 
    {
        this.reviewBy = reviewBy;
    }

    public String getReviewBy() 
    {
        return reviewBy;
    }
    public void setReviewTime(Date reviewTime) 
    {
        this.reviewTime = reviewTime;
    }

    public Date getReviewTime() 
    {
        return reviewTime;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setDelFlg(String delFlg) 
    {
        this.delFlg = delFlg;
    }

    public String getDelFlg() 
    {
        return delFlg;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("billId", getBillId())
            .append("invoiceNum", getInvoiceNum())
            .append("totalAmount", getTotalAmount())
            .append("reason", getReason())
            .append("billUrl", getBillUrl())
            .append("invoiceDate", getInvoiceDate())
            .append("purchaserName", getPurchaserName())
            .append("sellerName", getSellerName())
            .append("unit", getUnit())
            .append("type", getType())
            .append("num", getNum())
            .append("price", getPrice())
            .append("amount", getAmount())
            .append("taxRate", getTaxRate())
            .append("tax", getTax())
            .append("reviewBy", getReviewBy())
            .append("reviewTime", getReviewTime())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlg", getDelFlg())
            .toString();
    }
}
